import formatTime from '../../utils/formatTime.js' // 时间格式化工具
const db = wx.cloud.database()
const MAX_LIMIT = 10 // 一页的最大数量
Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		commentList: [], // 评论列表
		isShow: true, // 控制有无内容
		topIconIsShow: false, // top按钮显示
		userInfo: ''
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function(options) {
		// console.log('load')
		this.showEmpty()
		this._getOwnCommentList()
		this.setData({
			userInfo: wx.getStorageSync('USERINFO').userInfo
		})
	},
	onShow () { // 在onShow里面解决tab切换不刷新的问题 但是有问题
		// console.log('show')
		// console.log(this.data.commentList)
		// this._getOwnCommentList()
		// wx.startPullDownRefresh()
		// 在show的时候 属性下拉刷新 这种方式比上面的做法更加优化
		const pages = getCurrentPages()
		const prevPage = pages[pages.length - 1]
		prevPage.onPullDownRefresh()
	},
	_getOwnCommentList() { // 获取自己的评论
		wx.showLoading({
			title: '正在获取中...',
			mask: true
		})
		let start = this.data.commentList.length
		wx.cloud.callFunction({
			name: 'shop-comment',
			data: {
				$url: 'getOwnComment',
				start: start,
				count: MAX_LIMIT
			}
		}).then(res => {
			// console.log(res)
			let commentList = res.result // 循环格式化时间
			for (let i = 0, len = commentList.length; i < len; i++) { // 循环得到createTime 然后利用函数格式化时间
				commentList[i].createTime = formatTime(new Date(commentList[i].createTime))
			}
			this.setData({
				commentList: this.data.commentList.concat(res.result)
			})
			this.showEmpty()
			wx.hideLoading()
			wx.stopPullDownRefresh()
		})
	},
	goToMain () {
		wx.switchTab({
			url: '/pages/main/main'
		})
	},
	goToDetail (e) {
		// console.log(e)
		const commentId = e.currentTarget.dataset.commentid
		wx.navigateTo({
			url: `/pages/commentdetail/commentdetail?commentId=${commentId}`
		})
	},
	toDel (e) { // 删除
		// console.log(e)
		// console.log(this)
		let that = this
		const delId = e.target.dataset.delid
		wx.showModal({
			title: '提示',
			content: '是否删除这条评论？',
			success(res){
				// console.log(that)
				if(res.confirm){
					db.collection('blog-comment').where({ 
						_id: delId
					})
					.remove() // remove在小程序端使用只能删除一条
					.then(res => {
						// console.log(that)
						// console.log(that.data.commentList)
						that.setData({ // 成功后重新获取一次
							commentList: []
						})
						that._getOwnCommentList()
						//console.log(res)
					})
				}
			}
		})
	},
	showEmpty () { // 显示是否为空
		let commentListLength = this.data.commentList.length
		// console.log(commentListLength)
		if (commentListLength > 0) {
			this.setData({
				isShow: true
			})
		} else {
			this.setData({
				isShow: false
			})
		}
		// console.log(this.data.isShow)
	},
	onPullDownRefresh () { // 下拉刷新 重新赋值获取一次
		this.setData({
			commentList: []
		})
		this._getOwnCommentList()
	},
	onReachBottom () { // 触底刷新
		this._getOwnCommentList()
	},
	onPageScroll(e) { // page页面的监听滚动的事件
		// console.log(e)
		if (e.scrollTop > 100) { // 如果滚动大于100 就显示top组件
			this.setData({
				topIconIsShow: true
			});
		} else {
			this.setData({
				topIconIsShow: false
			});
		}
	}
})
